package com.agencia.jsf;

import java.util.GregorianCalendar;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

import com.agencia.ws.cliente.AterrizarWSDelegate;
import com.agencia.ws.cliente.AterrizarWSService;
import com.agencia.ws.cliente.Clase;
import com.agencia.ws.cliente.Pasajero;
import com.agencia.ws.cliente.VueloWs;
import com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl;

public class ReservarPaqueteBean {
	private String nroVuelo;
	private int nroAsiento;
	private Pasajero pasajero;
	
	public String reservarPaquete() {
		AterrizarWSService servicio = new AterrizarWSService();
		AterrizarWSDelegate delegate = servicio.getAterrizarWSPort();
		
		pasajero = new com.agencia.ws.cliente.Pasajero();		
		
		String nroReserva = delegate.reservarVuelo(nroVuelo, nroAsiento, pasajero);
			
		if (nroReserva.equals("")) {			
			FacesContext context = FacesContext.getCurrentInstance(); 
	        FacesMessage message = new FacesMessage("La reserva no se pudo concretar.");
	        message.setSeverity(FacesMessage.SEVERITY_ERROR);
	        context.addMessage("reservarPaqueteForm", message);
		} else {			
			FacesContext context = FacesContext.getCurrentInstance(); 
	        FacesMessage message = new FacesMessage("La reserva se concreto con exito.");
	        message.setSeverity(FacesMessage.SEVERITY_INFO);
	        context.addMessage("reservarPaqueteForm", message);
		}
		
		return null;
		
	}
	
	public String cancelarReserva() {
		AterrizarWSService servicio = new AterrizarWSService();
		AterrizarWSDelegate delegate = servicio.getAterrizarWSPort();
		
		double importe = delegate.cancelarReserva(new String("nroReserva"));
		
		return null;
	}
	
	public String comprarPasaje() {
		AterrizarWSService servicio = new AterrizarWSService();
		AterrizarWSDelegate delegate = servicio.getAterrizarWSPort();
		
		double importe = delegate.comprarPasaje(new String("nroReserva"));
		
		return null;
	}
	
	public String getVuelos() {
		AterrizarWSService servicio = new AterrizarWSService();
		AterrizarWSDelegate delegate = servicio.getAterrizarWSPort();
		
		List<VueloWs> vuelosDisponibles = delegate.getVuelos("", "", new XMLGregorianCalendarImpl(new GregorianCalendar()), Clase.PRIMERA);
		
		return null;
	}

	public String getNroVuelo() {
		return nroVuelo;
	}

	public void setNroVuelo(String nroVuelo) {
		this.nroVuelo = nroVuelo;
	}

	public int getNroAsiento() {
		return nroAsiento;
	}

	public void setNroAsiento(int nroAsiento) {
		this.nroAsiento = nroAsiento;
	}

	public Pasajero getPasajero() {
		return pasajero;
	}

	public void setPasajero(Pasajero pasajero) {
		this.pasajero = pasajero;
	}	
}
